<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>statevar</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="sr.html" title="sr" />
    <link rel="next" href="stix.html" title="stix" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">statevar</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="sr.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="stix.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="statevar"></a>
      <div class="titlepage"></div>
      <a id="IndexStatevar" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">statevar</span>
        </h2>
        <p>statevar — 
      State-variable filter.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp151587552"></a>
        <h2>Description</h2>
        <p>
Statevar is a new digital implementation of the analogue state-variable filter. 
This filter has four simultaneous outputs: high-pass, low-pass,
band-pass and band-reject. This filter uses oversampling for sharper
resonance (default: 3 times oversampling). It includes a
resonance limiter that prevents the filter from getting unstable. 
  </p>
      </div>
      <div class="refsect1">
        <a id="idp151589056"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">ahp,alp,abp,abr <span class="command"><strong>statevar</strong></span> ain, xcf, xq [, iosamps, istor]</pre>
      </div>
      <div class="refsect1">
        <a id="idp151591104"></a>
        <h2>Initialization</h2>
        <p>
      <span class="emphasis"><em>iosamps</em></span>  -- number of times of oversampling used in the 
filtering process. This will determine the maximum sharpness
of the filter resonance (Q). More oversampling allows higher Qs,
less oversampling will limit the resonance. The default is 3
times (iosamps=0).
	</p>
        <p>
      <span class="emphasis"><em>istor</em></span> --initial disposition of internal data space. Since 
filtering incorporates a feedback loop of previous output, 
the initial status of the storage space used is significant. 
A zero value will clear the space; a non-zero value will allow 
previous information to remain. The default value is 0.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp151594144"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>ahp</em></span> -- high-pass output signal.
    </p>
        <p>
      <span class="emphasis"><em>alp</em></span> -- low-pass output signal.
    </p>
        <p>
      <span class="emphasis"><em>abp</em></span> -- band-pass signal.
    </p>
        <p>
      <span class="emphasis"><em>abr</em></span> -- band-reject signal.
    </p>
        <p>
      <span class="emphasis"><em>asig</em></span> -- input signal.
    </p>
        <p>
      <span class="emphasis"><em>xcf</em></span> -- filter cutoff frequency (k-rate or a-rate).
    </p>
        <p>
      <span class="emphasis"><em>xq</em></span> -- filter Q (k-rate or a-rate). This
      value is limited internally depending on the frequency and the
      number of times of oversampling used in the process (3-times
      oversampling by default).
    </p>
      </div>
      <div class="refsect1">
        <a id="idp151601056"></a>
        <h2>Examples</h2>
        <p>
      Here is an example of the statevar opcode. It uses the file <a class="ulink" href="examples/statevar.csd" target="_top"><em class="citetitle">statevar.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp151602832"></a>
          <p class="title">
            <strong>Example 841. Example of the statevar opcode.</strong>
          </p>
          <div class="example-contents">
            <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
-odac      <span class="comment">;;;realtime audio out</span>
<span class="comment">;-iadc    ;;;uncomment -iadc if realtime audio input is needed too</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o statevar.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100 
<span class="ohdr">ksmps</span> <span class="op">=</span> 32 
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1 
<span class="ohdr">nchnls</span> <span class="op">=</span> 2

<span class="oblock">instr</span> 1

kenv <span class="opc">linseg</span> 0,0.1,1, p3<span class="op">-</span>0.2,1, 0.1, 0		<span class="comment">;declick envelope	</span>
asig <span class="opc">buzz</span> .6<span class="op">*</span>kenv, 100, 100, 1
kf   <span class="opc">expseg</span> 100, p3<span class="op">/</span>2, 5000, p3<span class="op">/</span>2, 1000		<span class="comment">;envelope for filter cutoff</span>
ahp,alp,abp,abr <span class="opc">statevar</span> asig, kf, 4
     <span class="opc">outs</span> alp,ahp				<span class="comment">; lowpass left, highpass right</span>
	
<span class="oblock">endin</span>	
<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span> 1 0 16384 10 1	<span class="comment">;sine wave</span>

<span class="stamnt">i</span>1 0 5 
<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1">
        <a id="idp151607120"></a>
        <h2>Credits</h2>
        <p>
      </p>
        <table border="0" summary="Simple list" class="simplelist">
          <tr>
            <td>Author: Victor Lazzarini</td>
          </tr>
          <tr>
            <td>January 2005</td>
          </tr>
        </table>
        <p>
    </p>
        <p>New plugin in version 5</p>
        <p>January 2005.</p>
        <p>Audio rate parameters introduced in version 6.02</p>
        <p>October 2013.</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="sr.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="stix.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">sr </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> stix</td>
        </tr>
      </table>
    </div>
  </body>
</html>
